windbg 调试笔记

虽然这是2017年8月19日的文章,但这是20190524才上传的,以后估计也会不断更新,也许不会更新,这可能取决于我以后对windbg用得更加6吧

windbg 调试笔记

符号

srv*c:\symbols*http://msdl.microsoft.com/download/symbols

显示加载的模块

lm

加载符号

ln *

程序入口伪寄存器

WinDbg里有个伪寄存器叫$exentry,里面记录了程序的入口点。所以我们只要在命令输入栏里输入
bp $exentry

查看内存

dd 查看内存

dc 可以看到数据

db 以byte查看

dt 查看数据结构

修改内存

eb/ew/ed/eq/ef/ep Address [Values]
字节/字/双字/四字/浮点数/指针/
ea/eu/eza/ezu Address [Values]
ASCII字符串/Unicode字符串/以NULL结尾的ASCII字符串/以NULL结尾的Unicode字符串

搜索内存

s -[b/w/d/q/a/u] Range Target
搜索字节/字/双字/四字/ASCII字符串/Unicode字符串

断点

  1. bp 下断点
  2. bl 列断点
  3. bc 清除断点
  4. bd 禁用断点

下内存断点
ba r4/w4/e4 xxxxxxx

条件断点
“.if(poi(xxx) == 0x0000xxx){}.else{gc}”

模块加载时下断

sxe ld:ntdll

查看SEH链

!exchain
或者
dt ntdll!_EXCEPTION_REGISTRATION_RECORD -l next poi(ExceptionList的首指针)

其他

~* 列出线程数

.childdbg 1 开启子进程调试

打赏专区